Method and apparatus for providing performance and usage information for a wireless local area network

ABSTRACT

Systems and methods provide for a server coupled to a wireless local area network (WLAN) or an agent to receive an input from a device. The input causes the server or the agent to select either the WLAN or devices coupled to the WLAN for which to report current performance and usage information and historical performance and usage information. Based on the selection, the information is retrieved at the server or the agent and transmitted to the device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is related to and claims priority benefit under 35 USC § 119(e) to co-pending and commonly-owned U.S. patent application Ser. No. 15/506,225, filed on Feb. 23, 2017, entitled “METHOD AND APPARATUS FOR PROVIDING PERFORMANCE AND USAGE INFORMATION FOR A WIRELESS LOCAL AREA NETWORK,” and listing Leonardo Dagum, Tuncay Cil, Lan Ke, and Wooyul as inventors, which is a 371 National Phase of International Patent Application No. PCT/US2014/063256, filed on Oct. 30, 2014, entitled “METHOD AND APPARATUS FOR PROVIDING PERFORMANCE AND USAGE INFORMATION FOR A WIRELESS LOCAL AREA NETWORK” which patent document is incorporated by reference herein in its entirety and for all purposes.

TECHNICAL FIELD

Embodiments of the present invention relates to reporting, to a device, performance and usage information of a wireless local area network.

BACKGROUND

Prior art WiFi routers and access points expose rudimentary management and monitoring tools to end users. These tools only provide a way for end users to change specific settings on a device, but do not expose performance or usage information for the network or devices in the network. Without this information it is very difficult for an end user to gauge the impact of any changes to the device settings and measure the improvement or degradation of the WiFi network as a consequence of any such changes.

Further, the number of routers and access points continues to grow and the average number of user devices connected to these devices is growing faster still, making it very challenging for a user to get the best performance from the WiFi network to which their device is connected. Chip vendors have responded by adding logic to self-optimize the WiFi network, but these solutions are restricted to purely online algorithms since they operate with limited resources and can only see recent data that has been passively collected. The WiFi network is a very dynamic environment with stations connecting and disconnecting essentially at random. Consequently it would be helpful for the information to be available both in real time and over long intervals for a machine or a human to make a better-informed decision based on the performance of the network.

What is needed is a method and apparatus that can take passive measurements and also make active probing measurements of the network performance in real time, and can store this data, for example, in the cloud, thereby removing any resource limitations with respect to data collection, storage and processing.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments are illustrated by way of example, and not by way of limitation, and can be more fully understood with reference to the following detailed description when considered in connection with the figures in which:

FIG. 1 illustrates a computing environment in which an embodiment of the invention operates.

FIG. 2 illustrates an example GUI display in accordance with an embodiment of the invention.

FIG. 3 illustrates another example GUI display in accordance with a different embodiment of the invention.

FIG. 4 provides a flow diagram of an embodiment of the invention.

DETAILED DESCRIPTION

According to one embodiment of the invention, an apparatus and method provide current performance and usage information, as well as historical performance and usage information to a device regarding a wireless local area network (WLAN), and/or one or more devices coupled to the WLAN. As illustrated in FIG. 1, and with reference to FIG. 4, the process starts at 405 wherein a server 110 coupled in communication with WLAN 130, or an agent executing on at least one of the devices in the WLAN, such as wireless access point 120 or computing devices 125 a-125 n, receives input at 410 from a device 105 to select one or more of the WLAN 130 and the devices 120 and 125 a-125 n coupled to the WLAN for which to report the current performance and usage information and the historical performance and usage information to the device 105. The server 110 or the agent retrieves at 415 the historical performance and usage information for the selected one or more of the WLAN and the devices coupled to the WLAN. Additionally, the server or the agent retrieves at 420 the current performance and usage information from the selected one or more of the WLAN and the devices coupled to the WLAN. Once both the selected historical and selected current performance and usage information is received, the server 110 or the agent then transmits at 425 the information to device 105.

Current performance and usage information is defined herein to include one or more of: a data transmission throughput, network-layer throughput, latency, jitter, connectivity, error rates, a received signal strength indication, a signal-to-noise ratio, power consumption, transmit power, security information, and quantity of data bytes transmitted, for a WLAN and one or more devices coupled to the WLAN according to or on a timeline, or in comparison to a historical baseline for the same data elements.

In the embodiment where the agent executing on at least one of the devices 120, 125 a-125 n receives the input from the device 105 to select the WLAN and/or one or more of the devices for which to report the current performance and usage information and the historical performance and usage information to the device, the agent issues a request to the server 110 coupled in communication with the agent to provide the historical performance and usage information for the selected WLAN and/or devices coupled to the WLAN. The server then provides the selected information to the agent responsive to the request.

In one embodiment, the agent also issues an additional request to the server 110 to provide the current performance and usage information for the selected WLAN and/or devices coupled to the WLAN. In such an embodiment, current performance and usage information for the WLAN and the devices coupled to the WLAN is uploaded to the server, where it is processed and validated at the server before the agent issues the additional request to the server to provide the current performance and usage information for the selected WLAN and/or devices coupled to the WLAN.

While the embodiment illustrated in FIG. 1 depicts the server 110 coupled in communication with an agent executing on one of devices 120, 125 a-125 n over an internetwork 115, in other embodiments, the server may be co-located with the agent on one of the devices coupled to the WLAN, or located on a different one of the devices coupled to the WLAN than the device on which the agent is located.

In one embodiment, when the server receives a request for the historical performance and usage information, the server accesses a memory storage system accessible on, or to, the server. In one embodiment, the memory storage subsystem may be directly coupled to the server, for example, as an external hard drive 135. In another embodiment, storage may be in, or accessible via, the internetwork 115.

The server may, in one embodiment, compile the historical performance and usage information for the selected WLAN and/or devices coupled to the WLAN by way of measurements collected over a period of time. These measurements are then stored in the memory storage system accessible on or to the server, for later retrieval and provisioning to an agent responsive to the agent issuing a request to the server to provide the historical performance and usage information for the selected WLAN and/or devices coupled to the WLAN.

In the embodiment where the server 110 receives the input from the device 105 to select the WLAN and/or one or more of the devices coupled to the WLAN for which to report the current performance and usage information and the historical performance and usage information to the device, the server issues a request to the agent to provide the historical performance and usage information for the selected WLAN and/or devices coupled to the WLAN. The server then retrieves the historical performance and usage information from the agent responsive to the request. According to one embodiment, the server receives periodic UDP pings issued from the agent to maintain a network address and port translation (NAPT) rule so that the server is able to issue the request to the agent at any time in order to provide the historical performance and usage information for the selected WLAN and/or devices coupled to the WLAN. In one embodiment, the server also issues an additional request to the agent to provide the current performance and usage information for the selected WLAN and/or the devices coupled to the WLAN and retrieves such information responsive to the additional request.

In one embodiment, the device 105 receives the information and presents it in a graphical user interface (GUI), for example, GUI 200 depicted in FIG. 2, on a display screen or surface of, or accessible to, the device 105. As depicted, the information includes the current speed 206 and historical speed 207 of a broadband network 115 to which the WLAN 130 is coupled, as well as current and historical performance and usage information for a number of devices 210, 215, 220, and 225. For example, current performance and usage information 211 is provided for device 210, as well as historical performance and usage information 212, e.g., from the previous week. In one embodiment, performance and usage information prior to an event is provided, such as an action performed on the device 210 that affects performance and/or usage of the device, such as optimization of the communication of the device in the WLAN (“before boost”) 213.

In one embodiment, in addition to providing current performance and usage information 211, and historical performance and usage information 212, for one or more of devices 210, 215, 220, and 225, in the GUI 200 on the display screen of the device 105, further information may be provided, such as a type associated with a device, a status of a device, and actions performed on the device that affect performance and/or usage of one or more of the WLAN and other devices coupled to the WLAN.

FIG. 2 illustrates presenting in the GUI 200 on the display screen of the device 105 the current performance and usage information and the historical performance and usage information for the selected WLAN 205 and devices 205, 210, 215, 220 and 225 in a series of bar charts. For example, the current performance and usage information for selected device 210 is depicted in graphical bar 211, and the historical performance and usage information for the selected device 210 is depicted in graphical bar 212. In one embodiment, graphical bars may overlap, at least in part, another graphical bar. For example, graphical bar 212 overlays graphical bar 211, and graphical bar 213, in turn, overlays graphical bar 212. As shown in FIG. 2, these different graphical bars 211, 212, and 213 are distinguished from each other by a different graphical characteristic. While the embodiment depicted in FIG. 2 demonstrates different colors for different bars as the means by which the different bars are distinguished from each other, other graphical characteristics may be used other than or in addition to color, such as shading, transparency, translucency, and use of borders.

Additional embodiments of the invention contemplate presenting in the GUI on the display screen of the device the current performance and usage information and the historical performance and usage information for selected WLAN and/or devices in a vertically-scrolling newsfeed-style display, or a multiple page view display, in which a selected one of the multiple page views is displayed by receiving user input, for example, swiping or tapping the display screen to transition to the selected one of the multiple page views. In one embodiment, the newsfeed style display may be sorted according to a priority or ordering scheme including or based on: a chronological ordering scheme, a reverse chronological ordering scheme, a magnitude of change in performance for the WLAN and/or the devices, a type associated with the devices, a status for the devices, actions performed on the devices that affect performance and/or usage of the WLAN and/or the devices, an action performed on a particular device that affects its performance and/or usage, and base station identifiers either from the same or multiple wireless access points.

In another embodiment, current and historical performance and usage information for a particular device could be shown together on the display screen, or consecutively, or ordered entirely distinct from the device. In yet another embodiment, information from different base station identifiers (BSSIDs) may be separated into different views (or tabs).

FIG. 3 illustrates another embodiment for presenting in the GUI 300 on the display screen of the device 105 the current performance and usage information and the historical performance and usage information for the selected WLAN 305 and devices 310, 315 and 330. This embodiment presents the information as a chart 335. In one embodiment, intelligent filtering may be used to reduce the visual clutter on the display from devices connecting and disconnecting to the WLAN and link performance variations from changes in signal strength. Examples of intelligent filtering include filtering based on a minimum RSSI, or a minimum amount of connect time.

Other embodiments include presenting the same type of view as depicted in FIG. 2 (i.e. graphically comparing per device performance) but stacking instead of merging the graphical bars. In another embodiment, the same type of view may be rendered but using only periodically collected performance and usage information rather than initiating a real-time collection of such information. On larger display screens, as may exist on laptop or desktop computer systems, the various alternative embodiments may be presented together, as shown in FIG. 3.

In one embodiment, the device 105 to which to report the current performance and usage information and the historical performance and usage information for the WLAN and/or the devices coupled to the WLAN is a mobile computing device, such as a smartphone. However, it is contemplated in other embodiments that the device may be a laptop or desktop computer as mentioned above, or a notebook computer, a tablet computer, a wireless router, a wireless access point, or a wireless switch. Further, while the embodiment illustrated in FIG. 1 depicts the device 105 located remotely from WLAN 130 and devices connected thereto, in other embodiments, the device may be located in the WLAN 130, for example, the device may be any one of devices 120 and 125 a-125 n. Additionally, while the embodiment illustrated in FIG. 1 depicts the device 105 located remotely from the agent executing on one of devices 120 and 125 a-125 n, in another embodiment, device 105 is coupled to the WLAN and the agent is resident, and executing directly on, the device 105.

In one embodiment, once the device 105 receives the information and presents it in the GUI on its display screen, a setting on one or more of the WLAN and the devices coupled to the WLAN may be changed. Examples of such settings include a channel selection, a bandwidth setting, a power setting, a data transmission rate, a mode of operation, a quality of service (QoS) parameter, and a beacon interval. After the setting is changed, the agent probes for new current performance and usage information for the selected WLAN and/or one or more devices coupled to the WLAN and combines the new current performance and usage information with the historical performance and usage information for the selected WLAN and/or one of more of the devices coupled to the WLAN, for forwarding to the device 105 for presentation in the GUI on the display screen of the device as new current performance and usage information and the historical performance and usage information for the WLAN and/or one or more of the devices coupled to the WLAN.

The device 105, server 110, or one of devices 120 and 125 a-125 n, may be a general purpose or special purpose computer system, in accordance with the embodiments described herein, within which a set of instructions, for causing the aforesaid devices to perform any one or more of the methodologies discussed herein, may be executed. In alternative embodiments, these devices may be connected, networked, interfaced, etc., with other machines in a Local Area Network (LAN), a Wide Area Network, an intranet, an extranet, or the Internet. One or more of the devices may operate in the capacity of a server or a client in a client-server network environment, or as a peer in a peer-to-peer (or distributed) network environment. In certain embodiments, each of the devices may be in the form of a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, computing system, Internet enabled television, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, where only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines (e.g., computers) that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

One or more of the devices may include a non-transitory machine-readable storage medium (or more specifically a non-transitory machine-accessible storage medium) on which is stored one or more sets of instructions (e.g., software) embodying any one or more of the methodologies or functions described herein. Software may also reside, or alternatively reside within a main memory of a device, and may further reside completely or at least partially within a processor(s) during execution thereof by a computing system, the main memory and the processor(s) also constituting machine-readable storage media. The software may further be transmitted or received over a network via a network interface card.

While the subject matter disclosed herein has been described by way of example and in terms of the specific embodiments, it is to be understood that the claimed embodiments are not limited to the explicitly enumerated embodiments disclosed. To the contrary, the disclosure is intended to cover various modifications and similar arrangements as are apparent to those skilled in the art. Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements. It is to be understood that the above description is intended to be illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reading and understanding the above description. The scope of the disclosed subject matter is therefore to be determined in reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. 

1. A network management method comprising: receiving, at a server coupled to a wireless local area network (WLAN) or an agent, input from a device, the input causing the server or the agent to select one or more of the WLAN or a plurality of devices coupled to the WLAN for which to report current performance and usage information and historical performance and usage information; retrieving at the server or the agent the historical performance and usage information, and the current performance and usage information; and transmitting the current performance and usage information, and the historical performance and usage information from the server or the agent to the device.
 2. The method of claim 1, wherein transmitting comprises transmitting one or more of: a type of at least one of the plurality of devices; a status of at least one of the plurality of devices; or an action performed on the device that affects performance or usage of one or more of the WLAN or the plurality of devices coupled to the WLAN.
 3. The method of claim 1, further comprising presenting in a graphical user interface (GUI) on a display screen of the device, the current performance and usage information and the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN.
 4. The method of claim 3, wherein presenting comprises: presenting the current performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN in a first graphical bar; and presenting the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN in a second graphical bar.
 5. The method of claim 4, wherein the first graphical bar and the second graphical bar overlap at least in part and are distinguished from each other by a graphical characteristic that comprises at least one of a color, a shading, a transparency, a translucency, or a border.
 6. The method of claim 4, wherein presenting further comprises at least one of presenting the current performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN in a vertically-scrolling newsfeed-style display, or presenting a multiple page view display in which a selected one of the multiple page views is displayed by receiving user input swiping or tapping a display to transition to the selected one of the multiple page views.
 7. The method of claim 6, wherein presenting comprises sorting the current performance and usage information according to a priority or ordering scheme including or based on a chronological ordering scheme, a reverse chronological ordering scheme, a magnitude of change in performance for one or more of: the WLAN or the plurality of devices coupled to the WLAN, a type of the devices, a status of the devices, an action performed on the device that affects performance and/or usage of one or more of the WLAN or the plurality of devices coupled to the WLAN, an action performed on the device that affects performance and/or usage of the device, or base station identifiers.
 8. The method of claim 1, further comprising issuing from the agent a request to the server to provide the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN and, responsive to the request, retrieving, at the agent, the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN.
 9. The method of claim 8, further comprising issuing from the agent a second request to the server to provide the current performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN, wherein retrieving comprises retrieving at the agent the current performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN responsive to the second request.
 10. The method of claim 9, further comprising: uploading to the server current performance and usage information for the WLAN or the plurality of devices coupled to the WLAN; and processing and validating at the server the current performance and usage information for the WLAN or the plurality of devices coupled to the WLAN, wherein issuing from the agent the second request comprises issuing from the agent the second request to the server to provide the validated current performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN.
 11. The method of claim 8, wherein the server is: co-located with the agent on one of the plurality of devices coupled to the WLAN, located on a different one of the plurality of devices coupled to the WLAN than the device on which the agent is located, or is remotely located from the WLAN or coupled to the agent over a network.
 12. The method of claim 11, wherein the server receives the request and obtains from a memory the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN responsive to the agent issuing the request.
 13. The method of claim 1, wherein receiving at the server input further comprises issuing from the server a request to the agent to provide the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN, wherein retrieving at the server the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN comprises retrieving at the server the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN responsive to the request.
 14. The method of claim 13 further comprising the server receiving UDP pings from the agent to maintain a network address and port translation (NAPT) rule such that the server is able to issue the request to the agent.
 15. The method of claim 1, further comprising: obtaining at the server, by measurements collected over a period of time, the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN; and storing the measurements in a memory accessible on or to the server, for later retrieval and provisioning to the agent responsive to the agent issuing the request to the server to provide the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN.
 16. The method of claim 1, wherein the device, to which to report the current performance and usage information and the historical performance and usage information for one or more of the WLAN or the plurality of devices coupled to the WLAN, includes one or more of: a desktop computer, a laptop computer, a notebook computer, a tablet computer, a wireless mobile computing device, a wireless router, a wireless access point, and a wireless switch.
 17. The method of claim 1, wherein the current performance and usage information is provided as one or more of: a data transmission throughput, network-layer throughput, latency, jitter, connectivity, error rates, a received signal strength indication, a signal-to-noise ratio, power consumption, transmit power, security information, and quantity of data bytes transmitted, for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN according to or on a timeline, or in comparison to a historical baseline thereof.
 18. The method of claim 1 further comprising: changing a setting on one or more of the WLAN or the plurality of devices coupled to the WLAN; probing, from the agent, for new current performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN, responsive to the changed setting; and combining at the agent the new current performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN or the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN, for forwarding to the device.
 19. A network management method comprising: receiving input from a device to select one or more of a wireless local area network (WLAN) or a plurality of devices coupled to WLAN for which to report a current performance and usage information and historical performance and usage information to the device; transmitting the input to a server coupled to the WLAN, or an agent executing on at least one of the plurality of devices; receiving from the server or the agent the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN; receiving from server or the agent the current performance and usage information from the selected one or more of the WLAN or the plurality of devices coupled to the WLAN; and presenting, in a graphical user interface (GUI) on a display screen of the device, the current performance and usage information and the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN.
 20. A computer-readable non-transitory storage medium, comprising computer instructions, that when executed, cause a computing device to perform steps comprising: receiving at a server coupled in communication with a wireless local area network (WLAN) or an agent executing on at least one of a plurality of devices, input from the device, the input causing the server or the agent to select one or more of the WLAN or the plurality of devices coupled to the WLAN for which to report a current performance and usage information and the historical performance and usage information to the device; retrieving at the server or the agent the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN; retrieving at server or the agent the current performance and usage information from the selected one or more of the WLAN or the plurality of devices coupled to the WLAN; and transmitting from the server or the agent to the device to present the current performance and usage information and the historical performance and usage information for the selected one or more of the WLAN or the plurality of devices coupled to the WLAN in a graphical user interface (GUI) on a display screen of the device. 